<html>
<head><meta charset="utf-8"><title>Polonius Parser · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html">Polonius Parser</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="247719108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719108">(Jul 30 2021 at 15:00)</a>:</h4>
<p>Are there further preferences or constraints regarding the parser refactoring? Currently, from what <span class="user-mention" data-user-id="116113">@lqd</span> has mentioned, I only have getting rid of lalrpop and improving compile times</p>



<a name="247719253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719253">(Jul 30 2021 at 15:01)</a>:</h4>
<p>"only" in a positive sense, not negative</p>



<a name="247719276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719276">(Jul 30 2021 at 15:01)</a>:</h4>
<p>there some ideas about the tests themselves</p>



<a name="247719311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719311">(Jul 30 2021 at 15:01)</a>:</h4>
<p>improving them in general, via the parser</p>



<a name="247719420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719420">(Jul 30 2021 at 15:02)</a>:</h4>
<p>let me try to find the NLL test explorations at the time, just so that you see what I'm talking about</p>



<a name="247719449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719449">(Jul 30 2021 at 15:02)</a>:</h4>
<p>yeah, that would be good</p>



<a name="247719496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719496">(Jul 30 2021 at 15:02)</a>:</h4>
<p>(I'm by no means asking to have this of course, it's just to show some inspiration)</p>



<a name="247719561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719561">(Jul 30 2021 at 15:03)</a>:</h4>
<p>if the new stuff is written similar to the old stuff, I can also just start by working on a parser for the current grammar</p>



<a name="247719583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719583">(Jul 30 2021 at 15:03)</a>:</h4>
<p>it would be yeah</p>



<a name="247719648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719648">(Jul 30 2021 at 15:04)</a>:</h4>
<p>my current problem with our current tests is: it's generally slow to compile, lalrpop has a lot of dependencies, etc</p>



<a name="247719722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719722">(Jul 30 2021 at 15:04)</a>:</h4>
<p>on nightly (even though we target beta) that means one may have to compile this everyday</p>



<a name="247719753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719753">(Jul 30 2021 at 15:04)</a>:</h4>
<p>it's not the end of the world, but it's unpleasant <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="247719850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719850">(Jul 30 2021 at 15:05)</a>:</h4>
<p>I think it was in <a href="https://github.com/nikomatsakis/borrowck">https://github.com/nikomatsakis/borrowck</a></p>



<a name="247719928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719928">(Jul 30 2021 at 15:05)</a>:</h4>
<p>since the grammar currently is not very big, I was thinking about just doing a small hand-written parser on top of a generated lexer (probably <code>logos</code>)</p>



<a name="247719975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247719975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247719975">(Jul 30 2021 at 15:06)</a>:</h4>
<p>that's still a macro, but does not need <code>build.rs</code></p>



<a name="247720036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720036">(Jul 30 2021 at 15:06)</a>:</h4>
<p>the format would have to be more similar to the existing polonius one of course, the data model is different, but it's just to give you an idea of the features that some of the polonius tests could be like</p>



<a name="247720045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720045">(Jul 30 2021 at 15:06)</a>:</h4>
<p>I've looked at the lalrpop deps and build deps are the majority</p>



<a name="247720153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720153">(Jul 30 2021 at 15:07)</a>:</h4>
<p>but exactly the same thing as we have today: embedded in a rust unit test, manually checking the facts and so on, would be perfectly fine</p>



<a name="247720223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720223">(Jul 30 2021 at 15:07)</a>:</h4>
<p>I was using some PEG parsers the other day</p>



<a name="247720228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720228">(Jul 30 2021 at 15:07)</a>:</h4>
<p>that seemed nice</p>



<a name="247720248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720248">(Jul 30 2021 at 15:07)</a>:</h4>
<p>since this is polonius and not polonius-engine, we don't have a lot of other constraints regarding dependencies compared to rustc</p>



<a name="247720287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720287">(Jul 30 2021 at 15:08)</a>:</h4>
<p><a href="https://pest.rs">https://pest.rs</a></p>



<a name="247720300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720300">(Jul 30 2021 at 15:08)</a>:</h4>
<p>:)</p>



<a name="247720301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720301">(Jul 30 2021 at 15:08)</a>:</h4>
<p>but there are others</p>



<a name="247720325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720325">(Jul 30 2021 at 15:08)</a>:</h4>
<p>mostly I got taken in by the nice web page</p>



<a name="247720340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720340">(Jul 30 2021 at 15:08)</a>:</h4>
<p>with a web page like that, you KNOW it's good!</p>



<a name="247720344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720344">(Jul 30 2021 at 15:08)</a>:</h4>
<p>:)</p>



<a name="247720359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720359">(Jul 30 2021 at 15:08)</a>:</h4>
<p>although actually I felt the docs left something to be desired</p>



<a name="247720361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720361">(Jul 30 2021 at 15:08)</a>:</h4>
<p>the graph is super misleading though :3</p>



<a name="247720374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720374">(Jul 30 2021 at 15:08)</a>:</h4>
<p>(a friend of mine does <code>nom</code>)</p>



<a name="247720377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720377">(Jul 30 2021 at 15:08)</a>:</h4>
<p>yeah probably</p>



<a name="247720385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720385">(Jul 30 2021 at 15:08)</a>:</h4>
<p>nom would be good too</p>



<a name="247720397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720397">(Jul 30 2021 at 15:09)</a>:</h4>
<p>also: the current parser does not emit all the facts</p>



<a name="247720399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720399">(Jul 30 2021 at 15:09)</a>:</h4>
<p>I don't really care about performance</p>



<a name="247720434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720434">(Jul 30 2021 at 15:09)</a>:</h4>
<p>same, only build times personnally :)</p>



<a name="247720437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720437">(Jul 30 2021 at 15:09)</a>:</h4>
<p>one problem is that pest just gives you a kind of generic parse tree</p>



<a name="247720453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720453">(Jul 30 2021 at 15:09)</a>:</h4>
<p>which is also one of its strengths :)</p>



<a name="247720472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720472">(Jul 30 2021 at 15:09)</a>:</h4>
<p>but that means you have to write some grody code to adapt it, which is not worth it</p>



<a name="247720521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720521">(Jul 30 2021 at 15:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Parser/near/247719850">said</a>:</p>
<blockquote>
<p>I think it was in <a href="https://github.com/nikomatsakis/borrowck">https://github.com/nikomatsakis/borrowck</a></p>
</blockquote>
<p>What part of this exactly am I looking at, just the <code>.nll</code> notation in general?</p>



<a name="247720529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720529">(Jul 30 2021 at 15:10)</a>:</h4>
<p>anyway I'd say nom, or some PEG parser, probably makes sense</p>



<a name="247720634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720634">(Jul 30 2021 at 15:10)</a>:</h4>
<p>there is no support in the parser for the move/init facts IIRC, you can't emit them with the current grammar (it's easy to add of course), and I'm almost positive some about liveness may not yet be, but I forget</p>



<a name="247720690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720690">(Jul 30 2021 at 15:10)</a>:</h4>
<p>yes the features in the .nll files niko et al had were interesting</p>



<a name="247720756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247720756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247720756">(Jul 30 2021 at 15:11)</a>:</h4>
<p>but like I said, even just being able to test quicker would be super cool</p>



<a name="247721089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247721089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247721089">(Jul 30 2021 at 15:12)</a>:</h4>
<p>I'm still unsure about what exactly you imagine for polonius' tests, but I'll start working on the current fact grammar for now</p>



<a name="247721148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247721148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247721148">(Jul 30 2021 at 15:12)</a>:</h4>
<p>seems like a good starting point</p>



<a name="247721165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247721165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247721165">(Jul 30 2021 at 15:13)</a>:</h4>
<p>absolutely</p>



<a name="247721229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247721229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247721229">(Jul 30 2021 at 15:13)</a>:</h4>
<p>maybe I shouldn't have mentioned these NLL tests <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="247739302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739302">(Jul 30 2021 at 17:38)</a>:</h4>
<p><span class="user-mention" data-user-id="337115">@Domenic Quirl</span> how are you doing ? :)</p>



<a name="247739327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739327">(Jul 30 2021 at 17:39)</a>:</h4>
<p>anything we can help with ?</p>



<a name="247739397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739397">(Jul 30 2021 at 17:39)</a>:</h4>
<p>I've written the whole grammar, and the first tests are passing</p>



<a name="247739423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739423">(Jul 30 2021 at 17:39)</a>:</h4>
<p>awesome :)</p>



<a name="247739520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739520">(Jul 30 2021 at 17:40)</a>:</h4>
<p>I'll go grab some food and then see if I can find where I made a stupid mistake that makes the other tests explode ^^</p>



<a name="247739854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247739854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247739854">(Jul 30 2021 at 17:43)</a>:</h4>
<p>nice</p>



<a name="247740034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247740034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247740034">(Jul 30 2021 at 17:44)</a>:</h4>
<p><a href="/user_uploads/4715/W6E5wH_f0mTVJvnXpKT2U2qT/image.png">image.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/W6E5wH_f0mTVJvnXpKT2U2qT/image.png" title="image.png"><img src="/user_uploads/4715/W6E5wH_f0mTVJvnXpKT2U2qT/image.png"></a></div>



<a name="247740063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247740063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247740063">(Jul 30 2021 at 17:44)</a>:</h4>
<p>(did it before the food)</p>



<a name="247740085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247740085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247740085">(Jul 30 2021 at 17:45)</a>:</h4>
<p>food now, then some cleanup</p>



<a name="247748262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247748262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247748262">(Jul 30 2021 at 18:56)</a>:</h4>
<p>How are you this fast?!</p>



<a name="247748478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247748478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247748478">(Jul 30 2021 at 18:58)</a>:</h4>
<p>I spent most of the past 4 months working on an unfairly more complicated parser <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="247748522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247748522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247748522">(Jul 30 2021 at 18:58)</a>:</h4>
<p>Still, that's faster than I've done anything on a computer, I think</p>



<a name="247749277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749277">(Jul 30 2021 at 19:06)</a>:</h4>
<p>I've ended up at around twice the speed for clean builds (of just the parser). Still a lot of time spent in proc macros, but definitely an improvement, at the cost of now manually maintaining a parser</p>



<a name="247749297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749297">(Jul 30 2021 at 19:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> how should I proceed on this?</p>



<a name="247749336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749336">(Jul 30 2021 at 19:07)</a>:</h4>
<p>open a PR :)</p>



<a name="247749526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749526">(Jul 30 2021 at 19:09)</a>:</h4>
<p>(to be fair to lalrpop, they have done a lot of great work to improve their build times, and this latest release we're still using is way faster than the previous ones)</p>



<a name="247749693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749693">(Jul 30 2021 at 19:11)</a>:</h4>
<p>your work should also have nice improvements to the overall test build ! sometimes I have to <code>cargo test --release</code> and IIRC it's 4x the time it takes to build the lib+bin in release</p>



<a name="247749729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247749729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247749729">(Jul 30 2021 at 19:11)</a>:</h4>
<p>I can check that</p>



<a name="247753767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247753767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247753767">(Jul 30 2021 at 19:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Parser/near/247749693">said</a>:</p>
<blockquote>
<p>your work should also have nice improvements to the overall test build ! sometimes I have to <code>cargo test --release</code> and IIRC it's 4x the time it takes to build the lib+bin in release</p>
</blockquote>
<p>Interestingly, and a bit sadly, while debug builds are faster, release builds seem to be on par or even a bit slower. Maybe that's because the parser itself is now bigger? Though <code>lalrpop</code> also generates new code... <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="247753790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247753790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247753790">(Jul 30 2021 at 19:51)</a>:</h4>
<p>This is the current state:</p>
<div class="codehilite"><pre><span></span><code>---- OLD ----
build --all: 28.874
build --all --release: 38.162
test: 42.74
test --release: 53.709

---- OLD (parser only) ----
build: 26.367
build --release: 31.56
test: 28.244
test --release: 34.41

---- NEW ----
build --all: 19.605
build --all --release: 45.81
test: 32.57
test --release: 60.387

---- NEW (parser only) ----
build: 16.683
build --release: 37.581
test: 18.993
test --release: 42.339
</code></pre></div>



<a name="247753888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247753888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247753888">(Jul 30 2021 at 19:52)</a>:</h4>
<p>I really don't know what's ending up taking so long there, the whole thing is ~600 lines</p>



<a name="247754267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247754267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247754267">(Jul 30 2021 at 19:56)</a>:</h4>
<p>interesting</p>



<a name="247754342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247754342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247754342">(Jul 30 2021 at 19:56)</a>:</h4>
<p>maybe cargo's timings output could give you an idea of the before/after picture for the whole build plan</p>



<a name="247755601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247755601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247755601">(Jul 30 2021 at 20:08)</a>:</h4>
<div class="codehilite"><pre><span></span><code>---- DEBUG NEW ----
   Completed regex-syntax v0.6.25 in 4.3s
   Completed syn v1.0.74 in 6.5s
   Completed polonius v0.7.0 in 6.8s
   Completed polonius v0.7.0 bin &quot;polonius&quot; in 0.6s
   Completed logos-derive v0.12.0 in 2.9s
   Completed logos v0.12.0 in 0.3s
   Completed polonius-parser v0.5.0 in 7.2s

---- RELEASE NEW ----
   Completed regex-syntax v0.6.25 in 4.7s
   Completed syn v1.0.74 in 8.7s
   Completed logos-derive v0.12.0 in 5.6s
   Completed logos v0.12.0 in 0.2s
   Completed polonius v0.7.0 in 14.2s
   Completed polonius v0.7.0 bin &quot;polonius&quot; in 0.3s
   Completed polonius-parser v0.5.0 in 27.4s

---- DEBUG OLD ----
   Completed indexmap v1.6.2 in 0.8s
   Completed petgraph v0.4.13 in 2.3s
   Completed itertools v0.10.0 in 2.9s
   Completed aho-corasick v0.7.15 in 2.3s
   Completed petgraph v0.5.1 in 1.8s
   Completed regex-syntax v0.6.23 in 6.1s
   Completed lalrpop-util v0.19.5 in 0.4s
   Completed winapi v0.3.9 in 6.1s
   Completed dirs v1.0.5 in 0.4s
   Completed atty v0.2.14 in 0.4s
   Completed regex v1.4.5 in 4.3s
   Completed ascii-canvas v2.0.0 in 0.6s
   Completed term v0.5.2 in 1.5s
   Completed polonius v0.7.0 in 7.9s
   Completed polonius v0.7.0 bin &quot;polonius&quot; in 0.7s
   Completed lalrpop v0.19.5 in 15.0s
   Completed polonius-parser v0.4.0 custom-build in 1.2s
   Completed polonius-parser v0.4.0 custom-build (run) in 1.1s
   Completed polonius-parser v0.4.0 in 1.6s

---- RELEASE OLD ----
   Completed regex-syntax v0.6.23 in 10.6s
   Completed indexmap v1.6.2 in 1.3s
   Completed petgraph v0.5.1 in 2.4s
   Completed aho-corasick v0.7.15 in 4.2s
   Completed winapi v0.3.9 in 7.5s
   Completed lalrpop-util v0.19.5 in 0.6s
   Completed dirs v1.0.5 in 0.7s
   Completed atty v0.2.14 in 0.6s
   Completed lalrpop-util v0.19.5 in 0.9s
   Completed regex v1.4.5 in 7.3s
   Completed aho-corasick v0.7.15 in 10.1s
   Completed regex-syntax v0.6.23 in 16.3s
   Completed ascii-canvas v2.0.0 in 0.8s
   Completed term v0.5.2 in 2.2s
   Completed regex v1.4.5 in 17.5s
   Completed polonius v0.7.0 in 30.0s
   Completed polonius v0.7.0 bin &quot;polonius&quot; in 1.0s
   Completed lalrpop v0.19.5 in 24.0s
   Completed polonius-parser v0.4.0 custom-build in 0.9s
   Completed polonius-parser v0.4.0 custom-build (run) in 1.6s
   Completed polonius-parser v0.4.0 in 5.9s
</code></pre></div>



<a name="247755696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247755696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247755696">(Jul 30 2021 at 20:09)</a>:</h4>
<p>In debug, the hand-written parser takes 7.2s compared to 15 for lalrpop. But for some reason in release it takes 27.4s while lalrpop only goes up to 24 <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="247756053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756053">(Jul 30 2021 at 20:12)</a>:</h4>
<p>are you timing parallel builds ?</p>



<a name="247756254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756254">(Jul 30 2021 at 20:14)</a>:</h4>
<p>by default, yes</p>



<a name="247756267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756267">(Jul 30 2021 at 20:14)</a>:</h4>
<p>running <code>-j 1</code> now</p>



<a name="247756570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756570">(Jul 30 2021 at 20:17)</a>:</h4>
<p>but don't worry too much about it in any case, the vast majority of cases for everyone will be to run tests in debug. and you've made these faster already :)</p>



<a name="247756776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756776">(Jul 30 2021 at 20:19)</a>:</h4>
<p>single-threaded does not make much of a difference, except that the overall build time is longer in both cases</p>



<a name="247756875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247756875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247756875">(Jul 30 2021 at 20:20)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Parser/near/247756570">said</a>:</p>
<blockquote>
<p>but don't worry too much about it in any case, the vast majority of cases for everyone will be to run tests in debug. and you've made these faster already :)</p>
</blockquote>
<p>Thanks! I can be very stubborn if I want though, so I'll bang my head against this wall just a tiny bit more ;)</p>



<a name="247757005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247757005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247757005">(Jul 30 2021 at 20:21)</a>:</h4>
<p>maybe try removing logos and also hand-write the lexer to get rid of syn and the derives. Since throughput is not the main concern, maybe that'll improve things. If not, I'll PR what I already have</p>



<a name="247757142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247757142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247757142">(Jul 30 2021 at 20:23)</a>:</h4>
<p>if you're up for it, that sounds promising indeed, but as I said don't feel obliged to ^^</p>



<a name="247762642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247762642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247762642">(Jul 30 2021 at 21:12)</a>:</h4>
<p>Ok, this is shaping up to be the way bigger improvement <span aria-label="relaxed" class="emoji emoji-263a" role="img" title="relaxed">:relaxed:</span></p>



<a name="247763290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247763290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247763290">(Jul 30 2021 at 21:17)</a>:</h4>
<div class="codehilite"><pre><span></span><code>---- OLD ----
build --all: 28.874
build --all --release: 38.162
test: 42.74
test --release: 53.709

---- OLD (parser only) ----
build: 26.367
build --release: 31.56
test: 28.244
test --release: 34.41

---- NEW ----
build --all: 8.38
build --all --release: 14.15
test: 16.569
test --release: 23.505

---- NEW (parser only) ----
build: 1.427
build --release: 2.84
test: 2.1
test --release: 2.945
</code></pre></div>



<a name="247763302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247763302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247763302">(Jul 30 2021 at 21:17)</a>:</h4>
<p>that's more in line with what I had hoped for</p>



<a name="247764735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/247764735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#247764735">(Jul 30 2021 at 21:30)</a>:</h4>
<p><span class="user-mention" data-user-id="337115">@Domenic Quirl</span> exceptional :D thank you so much for working on this</p>



<a name="248205709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/248205709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#248205709">(Aug 03 2021 at 10:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I've seen your review on the PR. I'm travelling right now, but will follow up when I'm back</p>



<a name="248205783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Parser/near/248205783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Parser.html#248205783">(Aug 03 2021 at 10:47)</a>:</h4>
<p>there’s no rush whatsoever, enjoy the traveling</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>